home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #11 / Amiga Plus CD - 2002 - No. 11.iso / Tools / Development / PowerD / powerd / modules.lha / modules / reaction / reaction_macros.m < prev    next >
Encoding:
Text File  |  2001-11-09  |  10.5 KB  |  235 lines

  1. /*
  2. **  $VER: reaction_macros.h 44.1 (19.10.1999)
  3. **  Includes Release 44.1
  4. **
  5. **  Reaction macros
  6. **
  7. **  (C) Copyright 1987-1999 Amiga, Inc.
  8. **      All Rights Reserved
  9. */
  10. /****************************************************************************
  11.  *  The following macro defines allow easy object creation.
  12.  *
  13.  *  You can do things such as:
  14.  *
  15.  *   layoutgadget = LayoutObject,
  16.  *                      LAYOUT_BevelStyle, GroupFrame,
  17.  *                      LAYOUT_AddChild,
  18.  *                          ButtonObject,
  19.  *                              GA_ID, 1L,
  20.  *                              GA_Text, "_Hamburgers",
  21.  *                          EndButton,
  22.  *                      LAYOUT_AddChild,
  23.  *                          ButtonObject,
  24.  *                              GA_ID, 2L,
  25.  *                              GA_Text, "Hot _Dogs",
  26.  *                          EndButton,
  27.  *                  EndLayout;
  28.  *
  29.  *   Be careful with your commas and colons; only the FIRST object gets
  30.  *   an "End;", objects that are embedded should get a comma ("End,"), so
  31.  *   that the TagList continues.
  32.  */
  33. /****************************************************************************
  34.  * Gadget Objects Creation Macros
  35.  */
  36. //#ifndef End
  37. #define End                  TAG_END)
  38. //#endif
  39. #define ButtonObject         NewObject( NIL, 'button.gadget'
  40. #define ToggleObject         NewObject( NIL, 'button.gadget', GA_ToggleSelect, TRUE
  41. #define CheckBoxObject       NewObject( (CheckBoxBase.Class), NIL
  42. #define ChooserObject        NewObject( (ChooserBase.Class), NIL
  43. #define ClickTabObject       NewObject( (ClickTabBase.Class), NIL
  44. #define ClickTabsObject      ClickTabObject
  45. #define PopUpObject          NewObject( (ChooserBase.Class), NIL, CHOOSER_PopUp, TRUE
  46. #define DropDownObject       NewObject( (ChooserBase.Class), NIL, CHOOSER_DropDown, TRUE
  47. #define FuelGaugeObject      NewObject( (FuelGaugeBase.Class), NIL
  48. #define FuelObject           FuelGaugeObject
  49. //#ifndef GetFileObject
  50. #define GetFileObject        NewObject( (GetFileBase.Class), NIL
  51. //#endif
  52. //#ifndef GetFontObject
  53. #define GetFontObject        NewObject( (GetFontBase.Class), NIL
  54. //#endif
  55. //#ifndef GetScreenModeObject
  56. #define GetScreenModeObject  NewObject( GETSCREENMODE_GetClass(), NIL
  57. //#endif
  58. #define IntegerObject  NewObject( INTEGER_GetClass(), NIL
  59. #define PaletteObject  NewObject( (PaletteBase.Class), NIL
  60. #define PageObject     NewObject( PAGE_GetClass(), NIL
  61. #define PenMapObject   NewObject( PENMAP_GetClass(), NIL
  62. #define LayoutObject   NewObject( LAYOUT_GetClass(), NIL
  63. #define VLayoutObject  NewObject( LAYOUT_GetClass(), NIL, LAYOUT_Orientation, LAYOUT_ORIENT_VERT
  64. #define HLayoutObject  NewObject( LAYOUT_GetClass(), NIL
  65. #define VGroupObject   VLayoutObject
  66. #define HGroupObject   HLayoutObject
  67. #define ListBrowserObject    NewObject( (ListBrowserBase.Class), NIL
  68. #define RadioButtonObject    NewObject( (RadioButtonBase.Class), NIL
  69. #define MxObject             RadioButtonObject
  70. #define ScrollerObject       NewObject( (ScrollerBase.Class), NIL
  71. #define SpeedBarObject       NewObject( (SpeedBarBase.Class), NIL
  72. #define SliderObject         NewObject( (SliderBase.Class), NIL
  73. #define StatusObject         NewObject( STATUSBAR_GetClass(), NIL
  74. #define StringObject         NewObject( (StringBase.Class), NIL
  75. #define SpaceObject          NewObject( (SpaceBase.Class), NIL
  76. #define TextFieldObject      NewObject( TEXTFIELD_GetClass(), NIL
  77. /****************************************************************************
  78.  * Image Object Creation Macros
  79.  */
  80. #define BevelObject          NewObject( (BevelBase.Class), NIL
  81. #define BitMapObject         NewObject( (BitMapBase.Class), NIL
  82. #define DrawListObject       NewObject( (DrawListBase.Class), NIL
  83. #define GlyphObject          NewObject( (GlyphBase.Class), NIL
  84. #define LabelObject          NewObject( (LabelBase.Class), NIL
  85. /****************************************************************************
  86.  * Class Object Creation Macros
  87.  */
  88. #define WindowObject         NewObject((WindowBase.Class), NIL
  89. #define ARexxObject          NewObject((ARexxBase.Class), NIL
  90. /****************************************************************************
  91.  * Window class method macros
  92.  */
  93. #define RA_OpenWindow(win )       DoMethod(win, WM_OPEN, NIL)
  94. #define RA_CloseWindow(win )      DoMethod(win, WM_CLOSE, NIL)
  95. #define RA_HandleInput(win,code ) DoMethod(win, WM_HANDLEINPUT, code)
  96. #define RA_Iconify(win )          DoMethod(win, WM_ICONIFY, NIL)
  97. #define RA_Uniconify(win )     RA_OpenWindow(win)
  98. /****************************************************************************
  99.  * ARexx class method macros
  100.  */
  101. #define RA_HandleRexx(obj)  DoMethod(obj, AM_HANDLEEVENT )
  102. #define RA_FlushRexx(obj)   DoMethod(obj, AM_FLUSH )
  103. /* Easy macro to set up a Hook for a string gadget, etc
  104.  */
  105. #define RA_SetUpHook(apphook,func,data)                       \
  106.  apphook.h_Entry = func; \
  107.  apphook.h_SubEntry = NIL;        \
  108.  apphook.h_Data = data;
  109. /****************************************************************************
  110.  * Additional BOOPSI Classes.
  111.  */
  112. #define ColorWheelObject     NewObject( NIL, 'colorwheel.gadget'
  113. #define GradientObject       NewObject( NIL, 'gradientslider.gadget'
  114. #define LedObject            NewObject( NIL, 'led.image'
  115. /****************************************************************************
  116.  * Reaction synomyms for End which can make layout
  117.  * groups easier to follow.
  118.  */
  119. #define WindowEnd            End
  120. #define BitMapEnd            End
  121. #define ButtonEnd            End
  122. #define CheckBoxEnd          End
  123. #define ChooserEnd           End
  124. #define ClickTabEnd          End
  125. #define ClickTabsEnd         End
  126. #define FuelGaugeEnd         End
  127. #define IntegerEnd           End
  128. #define PaletteEnd           End
  129. #define LayoutEnd            End
  130. #define ListBrowserEnd       End
  131. #define PageEnd              End
  132. #define RadioButtonEnd       End
  133. #define ScrollerEnd          End
  134. #define SpeedBarEnd          End
  135. #define SliderEnd            End
  136. #define StatusEnd            End
  137. #define StringEnd            End
  138. #define SpaceEnd             End
  139. #define StatusbarEnd         End
  140. #define TextFieldEnd         End
  141. #define ARexxEnd             End
  142. #define BevelEnd             End
  143. #define DrawListEnd          End
  144. #define GlyphEnd             End
  145. #define LabelEnd             End
  146. #define ColorWheelEnd        End
  147. #define GradientSliderEnd    End
  148. #define LedEnd               End
  149. /****************************************************************************
  150.  * Vector Glyph Images.
  151.  */
  152. #define GetPath              GLYPH_POPDRAWER
  153. #define GetFile              GLYPH_POPFILE
  154. #define GetScreen            GLYPH_POPSCREENMODE
  155. #define GetTime              GLYPH_POPTIME
  156. #define CheckMark            GLYPH_CHECKMARK
  157. #define PopUp                GLYPH_POPUP
  158. #define DropDown             GLYPH_DROPDOWN
  159. #define ArrowUp              GLYPH_ARROWUP
  160. #define ArrowDown            GLYPH_ARROWDOWN
  161. #define ArrowLeft            GLYPH_ARROWLEFT
  162. #define ArrowRight           GLYPH_ARROWRIGHT
  163. /****************************************************************************
  164.  * Bevel Frame Types.
  165.  */
  166. #define ThinFrame            BVS_THIN
  167. #define ButtonFrame          BVS_BUTTON
  168. #define StandardFrame        BVS_STANDARD
  169. #define RidgeFrame           BVS_FIELD
  170. #define StringFrame          BVS_FIELD
  171. #define GroupFrame           BVS_GROUP
  172. #define DropBoxFrame         BVS_DROPBOX
  173. #define HBarFrame            BVS_SBAR_HORIZ
  174. #define VBarFrame            BVS_SBAR_VERT
  175. #define RadioFrame           BVS_RADIOBUTTON
  176. #define MxFrame              BVS_RADIOBUTTON
  177. /****************************************************************************
  178.  * Often used simple gadgets
  179.  */
  180. #define Label(text )       CHILD_Label, LabelObject, LABEL_Text, text, End
  181. #define Button(text,id )    ButtonObject, GA_Text, text, GA_ID, id, GA_RelVerify, TRUE, End
  182. #define PushButton(text,id )  ButtonObject, GA_Text, text, GA_ID, id, GA_RelVerify, TRUE, BUTTON_PushButton, TRUE, End
  183. #define TextLine(text )   ButtonObject, GA_Text, text, GA_ReadOnly, TRUE, End
  184. #define LabelTextLine(text,label )  TextLine(text), Label(label)
  185. #define String(text,id,maxchars ) StringObject, STRINGA_TextVal, text, STRINGA_MaxChars, maxchars, GA_ID, id, GA_RelVerify, TRUE, GA_TabCycle, TRUE, End
  186. #define LabelString(text,id,maxchars,label )    String(text,id,maxchars), Label(label)
  187. #define PopString(text,id,maxchars,image )  LAYOUT_AddChild, HLayoutObject, String(text,0,maxchars), ButtonObject, BAG_AutoButton, image, GA_RelVerify, TRUE, GA_ID, id, End, End
  188. /****************************************************************************
  189.  * BGUI style Window/Layout Group Macros.
  190.  */
  191. #define StartMember          LAYOUT_AddChild
  192. #define StartImage           LAYOUT_AddImage
  193. #define StartHLayout         LAYOUT_AddChild, HLayoutObject
  194. #define StartVLayout         LAYOUT_AddChild, VLayoutObject
  195. #define StartHGroup          StartHLayout
  196. #define StartVGroup          StartVLayout
  197. #define EndWindow            End
  198. #define EndMember            End
  199. #define EndImage             End
  200. #define EndObject            End
  201. #define EndHGroup            End
  202. #define EndVGroup            End
  203. #define EndGroup             End
  204. /****************************************************************************
  205.  * Lazy typist BGUI inspired macros (BGUI is Copyright Jan van den Baard.)
  206.  */
  207. #define HAlign(p)   LAYOUT_HorizAlignment, p
  208. #define VAlign(p)   LAYOUT_VertAlignment, p
  209. #define Spacing(p)  LAYOUT_InnerSpacing, p
  210. #define LOffset(p)  LAYOUT_LeftSpacing, p
  211. #define ROffset(p)  LAYOUT_RightSpacing, p
  212. #define TOffset(p)  LAYOUT_TopSpacing, p
  213. #define BOffset(p)  LAYOUT_BottomSpacing, p
  214. /****************************************************************************
  215.  * And for even lazier typists....
  216.  */
  217. #define VCentered   LAYOUT_VertAlignment, LALIGN_CENTER
  218. #define TAligned    LAYOUT_VertAlignment, LALIGN_TOP
  219. #define BAligned    LAYOUT_VertAlignment, LALIGN_BOTTOM
  220. #define HCentered   LAYOUT_HorizAlignment, LALIGN_CENTER
  221. #define LAligned    LAYOUT_HorizAlignment, LALIGN_LEFT
  222. #define RAligned    LAYOUT_HorizAlignment, LALIGN_RIGHT
  223. #define Offset(x1,y1,x2,y2 ) LAYOUT_LeftSpacing, x1, LAYOUT_TopSpacing, y1, LAYOUT_RightSpacing, x2, LAYOUT_BottomSpacing, y2
  224. #define EvenSized   LAYOUT_EvenSize, TRUE
  225. #define MemberLabel(a )  CHILD_Label, LabelObject, LABEL_Text, a, LabelEnd
  226. /****************************************************************************
  227.  * Easy Menu Macros.
  228.  */
  229. #define Title(t ) { NM_TITLE, t, NIL, 0, 0, NIL }
  230. #define Item(t,s,i ) { NM_ITEM, t, s, 0, 0, i }
  231. #define ItemBar { NM_ITEM, NM_BARLABEL, NIL, 0, 0, NIL }
  232. #define SubItem(t,s,i ) { NM_SUB, t, s, 0, 0, i }
  233. #define SubBar { NM_SUB, NM_BARLABEL, NIL, 0, 0, NIL }
  234. #define EndMenu { NM_END, NIL, NIL, 0, 0, NIL }
  235.